import CourseService from '@/api/course'
import UnitService from '@/api/unit'
import ResourceService from '@/api/resource'
import QuizService from '@/api/quiz'
import UserService from '@/api/user'
import AssignService from '@/api/assign'

// utils/route.ts
interface DynamicTitleParams {
    [key: string]: string | string[]
}

export async function getDynamicTitle(params: DynamicTitleParams, keyName: string): Promise<string> {
    const locale = localStorage.getItem('userLocale')
    switch (keyName) {
        case 'announcementDiscussId': {
            // 获取 公告管理 的 讨论详情
            // 暂无接口
            return '讨论详情'
        }
        case 'courseId': {
            // 获取 课程详情
            const res = await CourseService.getById(Number(params[keyName]))
            return res.name
        }
        case 'unitId': {
            // 获取 单元详情
            const res = await UnitService.getById(Number(params[keyName]))
            return locale === 'en' ? res.title_en : res.title_cn
        }
        case 'videoId': {
            // 获取 视频详情
            const res = await ResourceService.videoInfo(Number(params[keyName]))
            return res.title
        }
        case 'quizId': {
            // 获取 考考你详情
            const res = await QuizService.getById(Number(params[keyName]))
            return res.title
        }
        case 'folderId': {
            // 获取 资源夹详情
            const res = await ResourceService.folderInfo(Number(params[keyName]))
            return res.title
        }
        case 'assignId': {
            // 获取 反思报告详情
            const res = await AssignService.getById(Number(params[keyName]))
            return res.title
        }
        case 'userId': {
            // 获取 用户详情
            const res = await UserService.getById(Number(params[keyName]))
            return `${res.last_name} ${res.first_name}`
        }
        case 'forumId': {
            // 获取 论坛详情
            // 暂无接口
            return '论坛详情'
        }
        case 'forumDiscussId': {
            // 获取 讨论详情
            // 暂无接口
            return '讨论详情'
        }
    }
    return ''
}
